소개
최근에 AWS Amplify에 연결되었지만 Python을 뉴토끼 공식 트위터하여 Lambda 기능을 추가했을 때 배포가 작동하지 않았으므로 해결 방법을 공유하겠습니다
*화면은 2023 년 12 월 4 일입니다
이번에는 문제
이제이 문제를 먼저 설명하겠습니다
2 단계 끝에 확인할 수 있습니다 아래에 설명 된 작동 점검 환경을 만들지 만 Amplify 프로젝트에 Python을 뉴토끼 공식 트위터하여 Lambda를 추가 한 후 Amplify의 CI/CD 기능을 뉴토끼 공식 트위터하여 자동 빌드 및 배포를 실행할 때 다음 오류가 발생합니다
1 2 3 4 |
Python3발견그러나버전Python 3.7.15 is Less보다the최소필수버전. You필수Python = 3.8 설치and 뉴토끼 공식 트위터 가능onYourPathas "Python3" 또는 "Python". itcanbe설치Fromhttps://wwwPythonorg/다운로드 You필수hadePIPENV설치and 뉴토끼 공식 트위터 가능onYourPATHas "Pipenv". itcanbe설치byRunning "PIP3 설치 -USER PIPENV". You필수HATEvirtualenv설치and 뉴토끼 공식 트위터 가능onYourPATHas "Venv". itcanbe설치byRunning "PIP3 install venv". |
이 오류는 오류 메시지에 명시된대로 Python 버전 문제와 관련이 있습니다
이 기사
Amplify CLI뉴토끼 공식 트위터 ADD 기능을 통해 런타임으로 Python을 선택하면
내부적으로 Python 38이 선택된 것으로 보입니다
반면에 CI/CD와 함께 뉴토끼 공식 트위터되는 Amazon Linux2에 설치된 Python은 374이므로
버전 불일치가 발생합니다
이것이 원인 인 것 같습니다
버전은 3715뉴토끼 공식 트위터 기사보다 약간 높았지만 문제는 동일합니다
그러나 기사에 따라 Python 38을 설치하는 것이 좋은 생각이라고 생각할 수도 있지만 이번에는 내가 만든 Lambda는 Python 311이므로 불가능합니다
해결 정책
이미지는 아래 다이어그램에 나와 있습니다
<현재 상태 이미지
<해결 이미지
위의 이미지에 표시된 것처럼 Docker 이미지는 Cloud9에서 작성되어 Amazon ECR 공개 저장소에서 뉴토끼 공식 트위터 정의 빌드 이미지로 게시되었습니다
Amplify는 뉴토끼 공식 트위터 정의 빌드 이미지로 빌드 환경을 구축하고 Python 311에서 Lambda를 자동으로 배포합니다
해상도 절차
1 참조
이번에는 다음 가정을 진행할 것입니다
- nodejs가 로컬로 설치됩니다 (NPX 명령은 뉴토끼 공식 트위터할 수 있어야 함)
- 로컬로 설치
- 당신은 CLI를 로컬로 설치했습니다
- 환경에 대한 로컬로 구성 앰프 성능
- 테스트 앱 클라이언트가 React와 함께 구현됩니다
2 2 조작 확인 환경
먼저 필요한 환경을 만듭니다
이미 환경을 만들었다면 건너 뛸 수 있지만 환경과 다를 수 있습니다
기본 AWS 리소스 생성 절차는이 기사의 시점뉴토끼 공식 트위터 벗어나면서 생략됩니다
공식 지침 및 기타 기술 기사를 참조하십시오
- [뉴토끼 공식 트위터 Console] CodeCommit 저장소 생성
- [로컬 명령 프롬프트] 클론 저장소
- [로컬 명령 프롬프트] 아래 명령으로 React App 프로젝트 생성
12CD 클론 디렉토리NPXCreate-React-app .
- [로컬 명령 프롬프트] 다음 명령으로 증폭 프로젝트를 초기화
1AMPLIFYinit
런타임시 설정을 적절하게 만드십시오 참고로 다음과 같이 설정했습니다
12345678910? enter a 이름for the프로젝트증폭프로젝트 이름? enter a 이름for the환경dev? 선택Your기본값 편집기: Visual스튜디오코드? 선택the타입 ofappthatYou're건물JavaScript제발TellUS약Your프로젝트? What JavaScript프레임 워크areYou뉴토끼 공식 트위터React? 소스디렉토리PATH:SRC? 배포디렉토리PATH: build? build명령:NPMCMD run-스크립트build? 시작명령: NPMCMD run-스크립트시작 - [로컬 명령 프롬프트] 아래 명령과 함께 Amplify 프로젝트에 Lambda 추가
1AMPLIFYadd기능
런타임이 "파이썬"이라는 점을 제외하고는 적절하게 설정하십시오
동일한 참조와 마찬가지로 이번에는 다음과 같이 설정했습니다123456789101112131415? selectwhy능력Youwantto add: 람다기능 (Serverless기능)? 제공an뉴토끼 공식 트위터람다기능 이름: 람다함수 이름? 선택the런타임그Youwantto use: Python전용ONE템플릿발견 - 뉴토끼 공식 트위터helloWorldby기본값.뉴토끼 공식 트위터 가능고급설정:- 자원Access권한- 예약반복호출- 람다레이어구성- 환경변수구성- 비밀값구성? do Youwantto 구성고급설정? 아니오? do Youwantto 편집theLocal람다기능 now? 아니오성공적으로추가자원람다함수 이름 로컬. - [로컬] 다음 두 파일을 수정
*감독48855_48898
Amplify가 자동으로 생성 된 구성 파일 편집 설정 변경을 변경하십시오</ Amplify/Backend/function/lambda 함수 이름/lambda 함수 name-cloudformation-templatejson
123(생략)"런타임": "Python311", // 원래 "Python38"등이었습니다(생략)
</ Amplify/Backend/function/lambda function name/pipfile123(생략)[요구]python_version = "311" // 원래 "38"등이었습니다 - [로컬 명령 프롬프트] 아래 명령과 함께 증폭 프로젝트의 설정을 반영
1Amplify푸시
- [로컬 명령 프롬프트] 소스 코드 푸시 코드 커밋 리포지토리
- [뉴토끼 공식 트위터 Console] Amplify 프로젝트의 설정을 열고 대상 리포지토리와 CodeCommit의 분기를 연결
*IAM 역할이 없으면 적절한 것으로 만들어주십시오
- [뉴토끼 공식 트위터 Console] 연결 후 자동 CI/CD가 실행되고 이번에 찾고있는 오류가 발생하는지 확인합니다
3 뉴토끼 공식 트위터 정의 빌드 이미지 만들기
나는 마침내 문제에 도달 했으므로 솔루션 단계로 넘어갈 것입니다
먼저 뉴토끼 공식 트위터 정의 빌드 이미지를 만듭니다
이번에는 현지 용량에 압력을 가하고 싶지 않았고 다른 좋은 환경이 없었기 때문에 새로운 Cloud9를 만들었습니다
- [뉴토끼 공식 트위터 Console] ECR과 공개 리포지토리 생성
*생성 후 "푸시 명령보기"버튼을 클릭하여 빌드 및 푸시 명령을 표시합니다
이후 단계에서 뉴토끼 공식 트위터될 때 편리하게 유지하십시오 이 명령은 나중에 참조 할 수 있습니다
- [뉴토끼 공식 트위터 Console] CREATE 9 (인스턴스 유형은 m5large)
- [Cloud9] Dockerfile 만들기
*뉴토끼 공식 트위터 정의 빌드 이미지 요구 사항공식 페이지에 요약되어 있으므로 뉴토끼 공식 트위터 정의 할 때 참조하십시오
*공식 Github 문제에서 발견되었지만 Alpine Linux는 Amplify의 뉴토끼 공식 트위터 정의 빌드 이미지를 지원하지 않는 것으로 보입니다 자동 빌드가 발생하면 로그가 표시되지 않고 오류가 발생합니다
조용하고 데비안을 기반으로하십시오 (이번에는 Debian12 Bookworm을 기반으로합니다)
*동일공식 Github 문제뉴토끼 공식 트위터 Nodejs 버전이 15 이상인 경우 오류가 발생하면 오류가 나타납니다 이를 피하기 위해 Nodejs의 버전은 Dockerfile뉴토끼 공식 트위터 14로 지정됩니다<dockerfile
1234567891011121314151617181920212223242526# python311 기준FromPython:3.11.6-Bookwormrunapt업데이트 && aptdist-업그레이드 -y# Curl, Git 및 OpenSsh 설치runapt-getinstall -y curlgitrunapt-getinstall -y OpenSsh-Server# AWS에 대한 설정 뉴토끼 공식 트위터 정의 빌드 이미지를 증폭시킵니다# nodejs and npmENV버전_노드 14runcurl -O- https://rawgithubusercontentcom/nvm-sh/nvm/v0390/installsh | 세게 때리다run /bin/bash -C " ~/nvm/nvmsh && \nvm install $NVM 별칭 기본값 $# 뉴토끼 공식 트위터-cli 설치runapt-getinstall -y 뉴토끼 공식 트위터cli# nodejs에 Amplify-Cli 설치run /bin/bash -C " ~/nvm/nvmsh && nvm 뉴토끼 공식 트위터 $npm install -g @뉴토끼 공식 트위터 -amplify/cli "# Python 런타임에 Lambda에 필요한 라이브러리 설치runPIP3install -U PIPENV - [Cloud9] 아래 명령과 함께 Docker 이미지를 빌드하여 ECR로 누릅니다
*공개 저장소를 만들 때 뉴토끼 공식 트위터 콘솔에 빌드 명령이 표시됩니다1234Dockerbuild -T 공개 저장소 이름 .Dockertag 공개 저장소 이름:최신publicECR뉴토끼 공식 트위터/xxxxx/공개 저장소 이름:최신뉴토끼 공식 트위터ECR-publicget-로그인-암호 --지역US-East-1 | Docker로그인 --뉴토끼 공식 트위터 이름뉴토끼 공식 트위터 --비밀번호-StdinpublicECR뉴토끼 공식 트위터/xxxxxDocker푸시publicECR뉴토끼 공식 트위터/xxxxx/공개 저장소 이름:최신 - [AWS Console] Amplify 프로젝트의 콘솔 화면뉴토끼 공식 트위터 Amplifyyml을 빌드 설정의 한 곳뉴토끼 공식 트위터 수정
*값이 "NPM CI"로 남겨두면 오류가 발생합니다 이것은 아마도 낮은 버전의 nodejs 때문일 것입니다 미래에 해결 될 것입니다1234567(생략)Frontend:단계:prebuild:명령:- NPMinstall # 원래 "NPM CI"(생략) - [AWS Console] Amplify 프로젝트의 콘솔 화면에서 설정을 추가하여 빌드 설정에서 뉴토끼 공식 트위터 정의 빌드 이미지를 사용하도록 설정
*뉴토끼 공식 트위터 정의 빌드 이미지의 URI는 "publicecraws/xxxxx/public 리포지토리 이름 : 최신"
- [AWS Console] Amplify 프로젝트의 콘솔 화면뉴토끼 공식 트위터 빌드 기록뉴토끼 공식 트위터 "이 버전을 재배치"클릭하십시오
- [뉴토끼 공식 트위터 콘솔] 자동 빌드 및 배포가 성공적으로 완료되도록하십시오
결론
또한 이번에는 Cloud9를 뉴토끼 공식 트위터했지만 로컬 Docker와 같은 방식으로 달성 할 수 있다고 생각합니다
그러나 Amplify와 Cloud9를 쉽게 시도 할 수있는 환경을 신속하게 만들 수 있습니다! 앞으로도 계속 뉴토끼 공식 트위터하고 싶습니다
위의 도움이 도움이되기를 바랍니다
저자 프로필

- TDI 디지털 혁신 기술 부서
- 내부 개발 프로젝트에 대한 기술 지원 및 Java의 내부 표준 프레임 워크 개발에 대한 책임 Spring Boot와 TDD를 시험해 보는 동안 Line Bot을 가지고 놀았습니다 최근에 마이크로 서비스를 공부하는 동안 클라우드 애플리케이션을 개발할 수있는 교육 엔지니어에도 집중하고 있습니다!
이 저자의 최신 기사
픽업!2024 년 1 월 30 일AWS가 Python311의 Lambda에서 CI/CD를 사용할 수 있도록 Amazon ECR에서 뉴토끼 공식 트위터 정의 이미지를 만듭니다
픽업!2023 년 8 월 30 일Google 드라이브 파일을 뉴토끼 공식 트위터 Lambda와 함께 Amazon S3에 업로드
픽업!2022 년 3 월 22 일AWS CodePipeline을 뉴토끼 공식 트위터하여 Amazon ECS (Fargate)에 REST API를 자동으로 배포합니다
픽업!2021 년 5 월 10 일화이트리스트에 API 구현 AWS뉴토끼 공식 트위터 여러 가지 기원을 확인하십시오